package com.cui.project.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 接口流量时序统计表（分钟级）
 * @TableName interface_traffic_metrics
 */
@TableName(value ="interface_traffic_metrics")
@Data
public class InterfaceTrafficMetrics implements Serializable {
    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 接口ID
     */
    @TableField("interface_info_id")
    private Long interfaceInfoId;

    /**
     * 时间桶（精确到分钟）
     */
    @TableField("time_bucket")
    private Date timeBucket;

    /**
     * 请求次数
     */
    @TableField("request_count")
    private Integer requestCount;

    /**
     * 成功次数
     */
    @TableField("success_count")
    private Integer successCount;

    /**
     * 失败次数
     */
    @TableField("fail_count")
    private Integer failCount;

    /**
     * 平均响应时间（毫秒）
     */
    @TableField("avg_latency_ms")
    private Integer avgLatencyMs;

    /**
     * 最大响应时间
     */
    @TableField("max_latency_ms")
    private Integer maxLatencyMs;

    /**
     * 总请求体大小（字节）
     */
    @TableField("total_body_size")
    private Long totalBodySize;

    /**
     * 独立用户数
     */
    @TableField("unique_users")
    private Integer uniqueUsers;

    /**
     * 独立IP数
     */
    @TableField("unique_ips")
    private Integer uniqueIps;


    /**
     * 创建时间
     */
    @TableField("created_at")
    private Date createdAt;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;


}